import request from '@/utils/request.js'

// 封装 搜索接口的api
// 根据关键字查询匹配的文章列表数据
export const searchList = (keyword) => {
  return request({
    method: 'get',
    url: 'v1_0/suggestion',
    params: {
      q: keyword
    }
  })
}

// 根据关键字 搜索文章列表的api接口
//! 分页方法: 根据 pagenum pagesize 根据页码 和 每页条数 进行分页
export const searchArticles = (options) => { // 分页传参的时候 直接传对象即可
  return request({
    method: 'get',
    url: 'v1_0/search',
    // axios传递get请求参数本来就是使用params
    // 利用传统的分页方法 获取分页的文章列表
    params: {
      // 当前页码
      page: options.pagenum,
      // 每页的条数
      per_page: options.pagesize,
      // 查询的关键字
      q: options.kw
    }
  })
}
// ? 获取文章的详情数据
// ? 设置形参 接收文章的id值
export const getDetailById = (articleId) => {
  return request({
    method: 'get',
    // ? 地址拼接文章的id值 获取服务器返回的文章数据
    url: 'v1_0/articles/' + articleId
  })
}

// ? 关注文章的接口
export const followArticle = (userId) => {
  return request({
    method: 'post',
    url: 'v1_0/user/followings',
    // ? post方法 需要携带 data比对数据
    data: {
      target: userId
    }
  })
}

// ? 取消关注文章的接口
export const unFollowArticle = (userId) => {
  return request({
    method: 'delete',
    // ? 拼接id
    url: 'v1_0/user/followings/' + userId
  })
}

//! 点赞接口
export const likes = (articleId) => {
  return request({
    method: 'post',
    url: 'v1_0/article/likings',
    data: {
      target: articleId
    }
  })
}

//! 取消点赞接口
export const unlikes = (articleId) => {
  return request({
    method: 'delete',
    url: 'v1_0/article/likings/' + articleId
  })
}

//! 添加【不喜欢】接口
export const dislikes = (articleId) => {
  return request({
    method: 'post',
    url: 'v1_0/article/dislikes',
    data: {
      target: articleId
    }
  })
}

//! 取消【不喜欢】接口
export const undislikes = (articleId) => {
  return request({
    method: 'delete',
    url: 'v1_0/article/dislikes/' + articleId
  })
}

// 获取文章的评论
export const getComments = (articleId, offset) => { // 两个参数 评论文章的id/回复文章id 和 分页的参数(评论条的id)
  return request({
    method: 'get',
    url: 'v1_0/comments',
    params: {
      // a表示文章的评论;c表示回复评论的数据
      type: 'a',
      // 评论的文章的id或者，回复的评论的id
      source: articleId,
      // 分页参数(评论数据的id)设置为null是从第一条评论开始获取(不传值默认第一条)
      offset: offset,
      // 每页的条数
      limit: 10
    }
  })
}
// 上传评论接口
export const comment = (options) => {
  return request({
    method: 'post',
    url: 'v1_0/comments',
    data: {
      // 文章的id
      target: options.target,
      // 评论内容
      content: options.content,
      // 如果参数target是文章id，那么这个参数不需要
      // 如果参数target是评论id，那么这个参数表示文章id(回复评论时候用到)
      art_id: options.articleId
    }
  })
}
